vt-d: enhance the support of Interrupt Remapping EIM and x2APIC
authorKeir Fraser <keir.fraser@citrix.com>
Mon, 7 Sep 2009 07:44:50 +0000 (08:44 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Mon, 7 Sep 2009 07:44:50 +0000 (08:44 +0100)
commitcda2f6c76132090176f4b88c84917861c21bd21c
tree387ba0fdfd857d89ec9501ad9c1f0e04adeb5b17
parent1589882b8b25246268332a58135a2e66e20d63e2
vt-d: enhance the support of Interrupt Remapping EIM and x2APIC

1) Clear Interrupt Remapping(IR) unit's CFI (Compatibility Format
Interrupt) to enhance security;
2) Move the iommu_setup() ahead and put it before we begin to use
IOAPIC so we can make sure after we enable Interrupt Remapping, the
later IOAPIC (and MSI) initialization would setup IOAPIC RTEs (and
MSI) with remappable format;
3) Enable x2APIC only when all VT-d engines support IR with EIM
(Extended Interrupt Mode). EIM enables external devices to deliver
interrupts to logical processor with >8-bit APIC ID.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
13 files changed:
xen/arch/ia64/xen/xensetup.c
xen/arch/x86/apic.c
xen/arch/x86/genapic/probe.c
xen/arch/x86/setup.c
xen/drivers/passthrough/iommu.c
xen/drivers/passthrough/vtd/dmar.c
xen/drivers/passthrough/vtd/dmar.h
xen/drivers/passthrough/vtd/intremap.c
xen/drivers/passthrough/vtd/iommu.h
xen/drivers/passthrough/vtd/vtd.h
xen/include/asm-x86/genapic.h
xen/include/asm-x86/smp.h
xen/include/xen/iommu.h